package com.youku.ast;

/**
 * 定义方法
 * 
 * @author loda
 *
 */
public class DefFunctionAst extends Ast {

	public DefFunctionAst(Ast... asts) {
		super(asts);
	}

	/**
	 * 方法名
	 * 
	 * @return
	 */
	public String funName() {
		return getChild(0).getTokenValue();
	}

	/**
	 * 参数列表
	 * 
	 * @return
	 */
	public ArgumentAst arguments() {
		return (ArgumentAst) getChild(1);
	}

	/**
	 * 方法体
	 * 
	 * @return
	 */
	public BlockAst body() {
		return (BlockAst) getChild(2);
	}

	@Override
	public String toString() {
		return "def " + funName() + "(" + arguments() + ")" + body();
	}

}
